package filter;

import pipes.BufferedSyncPipe;
import interfaces.Readable;

public abstract class Sink<T> implements Readable<T>, Runnable{

	protected BufferedSyncPipe<T> input;
	
	public Sink(BufferedSyncPipe<T> input){
		this.input = input;
	}
	
    public void run() {
    	takeForm(input);
            
    }
    
    public abstract void takeForm(BufferedSyncPipe<T> pipe);    	
    	
    }
    
    

